﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using ECCIT;
using OgilvyOne.Model;
using OgilvyOne.SqlServerDAL;
using OgilvyOne.UKNow.Model;
using OgilvyOne.UKNow.Utility;

namespace OgilvyOne.UKNow.IDAL
{
    public interface IDALNewsUser
    {
        #region 获取数据接口
        /// <summary>
        /// 获取所有用户数据
        /// </summary>
        /// <returns>返回NewsUserModel类的泛型集合</returns>
        IList<NewsUserModel> GetNewsUserModel();

        /// <summary>
        ///  根据用户id获取该对象的实体
        /// </summary>
        /// <param name="id">用户id</param>
        /// <returns>返回该对象的实体</returns>
        NewsUserModel GetNewsUserModelByID(int? id);
        #endregion

        #region 操作数据接口
        /// <summary>
        /// 保存/修改数据
        /// </summary>
        /// <param name="modelInfo">新闻用户实体类</param>
        /// <returns>
        ///     通过判断ResultInfo.Result为true还是false获取保存是否成功
        ///     如果ResultInfo.Result为true，可以通过ResultInfo.ReturnedObject获取modelInfo
        ///     如果ResultInfo.Result为false，可以通过ResultInfo.Message获取错误提示，通过ResultInfo.Exception获取异常信息
        /// </returns>
        ResultInfo Save(NewsUserModel modelInfo);

        /// <summary>
        /// 设置用户是否有效 
        /// </summary>
        /// <param name="id">用户id</param>
        /// <param name="flag">标识位 真值：有效 假值：无效</param>
        /// <returns>
        ///     通过判断ResultInfo.Result为true还是false获取保存是否成功
        ///     如果ResultInfo.Result为false，可以通过ResultInfo.Message获取错误提示，通过ResultInfo.Exception获取异常信息
        /// </returns>
        ResultInfo SetStatus(int id, bool flag);

        /// <summary>
        ///  验证用户名是否重复
        /// </summary>
        /// <param name="name">用户名</param>
        /// <returns>返回该对象的实体或null</returns>
        IList<NewsUserModel> CheckName(string name);
        #endregion
    }
}
